package com.meituan.sdk.model.ddzhkh.shangpin.productDealgroupOffline;

import com.meituan.sdk.annotations.ApiMeta;
import com.google.gson.reflect.TypeToken;
import javax.validation.constraints.NotBlank;
import java.lang.reflect.Type;
import com.meituan.sdk.internal.utils.JsonUtil;
import com.google.gson.annotations.SerializedName;
import javax.validation.constraints.NotNull;
import com.meituan.sdk.MeituanResponse;
import com.meituan.sdk.MeituanRequest;

/**
* 下架团单
* This file was automatically generated.
*/
@ApiMeta(
    path = "/ddzhkh/shangpin/dealgroup/offline",
    businessId = 59,
    apiVersion = "10091",
    apiName = "product_dealgroup_offline",
    needAuth = true
)
public class ProductDealgroupOfflineRequest implements MeituanRequest<ProductDealgroupOfflineResponse> {
    /**
    * <p data-diff-id="ct-diff-id-21f30582-1ff0-4194-9e8e-22a33fd1e40d"><span style="color: ">其他原因</span></p>
    */
    @NotBlank(message = "remark不能为空")
    @SerializedName("remark")
    private String remark;
    /**
    * <p data-diff-id="ct-diff-id-a7c5cc1b-7464-435b-9806-9b3f79e0c667"><span style="color: ">来源，体检 : physicalExamination</span></p>
    */
    @NotBlank(message = "source不能为空")
    @SerializedName("source")
    private String source;
    /**
    * <p data-diff-id="ct-diff-id-012a539b-9bae-457f-8382-f018dd056834"><span style="color: ">团单id</span></p>
    */
    @SerializedName("dealGroupId")
    private Integer dealGroupId;
    /**
    * <p data-diff-id="ct-diff-id-52c47ec1-87c6-4a96-ba2f-b8560e67e796">下架原因，90104-其他, 90133-特定时间范围内不接待团购用户（如春节、店庆）, 90134-店内不再经营该项目, 90135-转让/装修/停业/转行, 90136-与其他团单重复, 90137-被销售私自上线, 90138:销量不好</p>
    */
    @NotNull(message = "reasonType不能为空")
    @SerializedName("reasonType")
    private Integer reasonType;
    /**
    * <p data-diff-id="ct-diff-id-5d0da0f9-24a9-4e6f-a7c1-760790da7a93"><em><span style="color: rgba(0, 0, 0, 0.65)">团单id 推荐使用该字段</span></em></p>
    */
    @SerializedName("longDealGroupId")
    private Long longDealGroupId;

    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public String getSource() {
        return source;
    }
    public void setSource(String source) {
        this.source = source;
    }
    public Integer getDealGroupId() {
        return dealGroupId;
    }
    public void setDealGroupId(Integer dealGroupId) {
        this.dealGroupId = dealGroupId;
    }
    public Integer getReasonType() {
        return reasonType;
    }
    public void setReasonType(Integer reasonType) {
        this.reasonType = reasonType;
    }
    public Long getLongDealGroupId() {
        return longDealGroupId;
    }
    public void setLongDealGroupId(Long longDealGroupId) {
        this.longDealGroupId = longDealGroupId;
    }


    @Override
    public MeituanResponse<ProductDealgroupOfflineResponse> deserializeResponse(String response) {
        Type type = new TypeToken<MeituanResponse<ProductDealgroupOfflineResponse>>(){}.getType();
        return JsonUtil.fromJson(response, type);
    }
    @Override
    public String serializeToJson() {
        return JsonUtil.toJson(this);
    }


    @Override
    public String toString() {
        return "ProductDealgroupOfflineRequest{" + "remark=" + remark + "," + "source=" + source + "," + "dealGroupId=" + dealGroupId + "," + "reasonType=" + reasonType + "," + "longDealGroupId=" + longDealGroupId + "}";
    }
}
